// ajax请求参数
let params = {
    pagenum : 1,
    pagesize : 2
}

// 封装函数,获取文章渲染到tbody中
function render (){
  // 获取文章
  axios.get('/my/article/list',{params : params}).then(function(res){
    console.log(res.data);
    // 解构赋值
    let  {status, message,data,total} = res.data;
    if(status === 0){
      let str = '';
      data.forEach(item=>{
        str += `
        <tr>
          <td>${item.title}</td>
          <td>${item.cate_name}</td>
          <td>${item.pub_date}</td>
          <td>${item.state}</td>
          <td>
            <a href="./edit.html?id=${item.id}" type="button" class="layui-btn layui-btn-xs">编辑</a>
            <button data-id="${item.id}" type="button" class="layui-btn layui-btn-xs layui-btn-danger">删除</button>
      </td>
        </tr>
        `
      });
      $('tbody').html(str);
      showPage(total);
    }
  })
}
render();

let laypage = layui.laypage;
function showPage(t){
  laypage.render({
    elem: 'page', //注意，这里的 test1 是 ID，不用加 # 号
    count: t, //数据总数，从服务端得到
    limit : params.pagesize,
    curr : params.pagenum,
    layout : [ 'count','prev','page','next','limit','skip'],
    jump: function(obj, first){
      //obj包含了当前分页的所有参数，比如：
      // console.log(obj.curr); //得到当前页，以便向服务端请求对应页的数据。
      // console.log(obj.limit); //得到每页显示的条数
      
      //首次不执行
      if(!first){
        //do something
        params.pagesize = obj.limit;
        params.pagenum = obj.curr;
        render();
      }
    }
  });
}


// 筛选
axios.get('/my/category/list').then(function(res){
  console.log(res);
  let {status,message,data} = res.data;
  if(status === 0){
    let str = '';
    data.forEach(item=>{
      str += `
      <option value="${item.id}">${item.name}</option>
      `
    })
    $('#category').append(str);
    let form = layui.form;
    form.render('select');
  }
})


// 完成筛选
$('#search').on('submit',function(e){
  e.preventDefault();
  let cate_id = $('#category').val();
  let state = $('#state').val();

  if(cate_id){
    params.cate_id = cate_id;
  }else{
    delete params.state
  }

  params.pagenum = 1;
  render();
})


// 删除
// -----------------------------  删除文章  ---------------------------------------
$('tbody').on('click', 'button:contains("删除")', function () {
  let that = $(this);
  let id = that.data('id');
  layer.confirm('你确定要删除吗？', function (index) {
    // 确定删除，通过DOM的方式移除当前的tr
    that.parents('tr').remove();

    // 完成删除文章
    axios.get(`/my/article/delete/${id}`).then(res => {
      let { status, message } = res.data;
      if (status === 0) {
        layer.msg(message);
        // 计算tbody里，还有没有子元素（tr），如果没有tr，params.pagenum--。再发送请求获取上一页的数据
        let trs = $('tbody').children();
        if (trs.length === 0 && params.pagenum !== 1) {
          params.pagenum--;
        }
        render();
      }
    })
    layer.close(index);
  })
})